#!/usr/bin/env python
#  Copyright (C) 2008 Monadsphere <monadli@gmail.com>
#
# This file is part of Monadsphere.
#
# Monadsphere is free software: you can redistribute it and/or modify
# it under the terms of the GNU Lesser General Public License as published by
# the Free Software Foundation; either version 3 of the License, or
# (at your option) any later version.
#
# Monadsphere is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
# GNU Lesser General Public License for more details.
#
# You should have received a copy of the GNU Lesser General Public License
# along with Monadsphere. If not, see <http://www.gnu.org/licenses/>.

from types import StringType
from types import UnicodeType

class StrWrap:
  '''
    This class wraps a string or an element.
  '''
  def __init__(self, val):
    self.val = val

  def __add__(self, other):
    '''
      Returns string concatnation.
    '''
    return str(self) + str(other)

  def __radd__(self, other):
    '''
      Returns string concatination.
    '''
    return str(other) + str(self)

  def __str__(self):
    if (isinstance(self.val, StringType) or isinstance(self.val, UnicodeType)):
      return '"' + self.val + '"'
    else:
      return str(self.val)
